﻿using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Collections.Generic;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using Microsoft.Practices.ObjectBuilder;
using GC2.Bussines.BMSeguridad;
using GC2.Bussines.BMAdmin;
using GC2.Entities.Seguridad;
using GC2.ExceptionHandler;
using GC2.Entities.Admin;
public partial class Admin_BuscarProveedor: GenericPage
{

    #region Propiedades
    Usuarios usuario = new Usuarios();
    private List<Proveedores> listaProveedores
    {
        get
        {
            return (List<Proveedores>)Session["listaProveedores"];
        }
        set
        {
            Session["listaProveedores"] = value;
        }
    }

    #endregion

    #region Controles

    #region Page_Load
    protected void Page_Load(object sender, EventArgs e)
    {
        try
        {
            SetearCultura();
            SetearConexion();
            registrarScript();
            if (!IsPostBack)
            {
                usuario = (Usuarios)Session["UsuarioActual"];
                string strOkEvent = ClientScript.GetPostBackEventReference(gvClientes, string.Empty);
                gvClientes.Attributes.Add("gvClientes_SelectedIndexChanged", strOkEvent);

                llenarControlesDeQueryString();
                List<Proveedores> listaConceptos = new List<Proveedores>();

                //llenar este objeto con los datos del cliente a filtrar
            }
        }
        catch (Exception ex) { ErrorUI(ex); }
    }
    #endregion..

    #region btnBuscar_Click
    protected void btnBuscar_Click(object sender, EventArgs e)
    {
        try
        {
            gridDataBaund();
        }
        catch (Exception ex) { ErrorUI(ex); }
    }
    #endregion

    #region gvClientes_PageIndexChanging
    protected void gvClientes_PageIndexChanging(object sender, GridViewPageEventArgs e)
    {
        try
        {
            gvClientes.PageIndex = e.NewPageIndex;
            gridDataBaund();
        }
        catch (Exception ex) { ErrorUI(ex); }
    }
    #endregion

    #region gvClientes_SelectedIndexChanged
    protected void gvClientes_SelectedIndexChanged(object sender, EventArgs e)
    {
        try
        {
            // Evento manejado por Java.
        }
        catch (Exception ex) { ErrorUI(ex); }
    }
    #endregion

    #region gvClientes_RowDataBound
    protected void gvClientes_RowDataBound(object sender, GridViewRowEventArgs e)
    {
        try
        {
           
        }
        catch (Exception ex) { ErrorUI(ex); }
    }
    #endregion  

    #endregion

    #region Metodos

    #region llenarControlesDeQueryString
    private void llenarControlesDeQueryString()
    {
        try
        {
            if (Request.QueryString["IdProveedor"] != null)
            {
                txtIdProveedor.Text = Request.QueryString["IdProveedor"].ToString();
            }
            if (Request.QueryString["Nombre"] != null)
            {
                txtProveedor.Text = Request.QueryString["Proveedor"].ToString();
            }
        }
        catch (Exception ex) { ErrorUI(ex); }
    }
    #endregion

    #region registrarScript
    private void registrarScript()
    {
        try
        {
            Page.ClientScript.RegisterClientScriptBlock(this.GetType(), "ClienteScript",
            @"
        <script language=""javascript"" type=""text/javascript"">
        <!--
        function returnvalue(IdProveedor, Proveedor, Saldo)
        {
            var vIdProveedor = document.getElementById(IdProveedor);
            var vProveedor = document.getElementById(Proveedor);
            var vSaldo = document.getElementById(Saldo);

            //para cuando el PopUP fue llamado de una pagina con MasterPage
            if(window.opener.aspnetForm != null)
            {
                if(window.opener.aspnetForm.ctl00_ContentPlaceHolder1_txtIdProveedor != null)
                {
                    window.opener.aspnetForm.ctl00_ContentPlaceHolder1_txtIdProveedor.value = vIdProveedor.innerHTML;
                }
                if(window.opener.aspnetForm.ctl00_ContentPlaceHolder1_txtProveedor != null)
                {
                    window.opener.aspnetForm.ctl00_ContentPlaceHolder1_txtProveedor.value = vProveedor.innerHTML;
                }
                if(window.opener.aspnetForm.ctl00_ContentPlaceHolder1_txtSaldo != null)
                {
                    window.opener.aspnetForm.ctl00_ContentPlaceHolder1_txtSaldo.value = vSaldo.innerHTML;
                }  
            }
            window.close();
        }
        //-->   
        </script>
        ");
        }
        catch (Exception ex) { ErrorUI(ex); }
    }
    #endregion

    #region gridDataBaund
    private void gridDataBaund()
    {
        try
        {
            listaProveedores = (List<Proveedores>)Session["listaProveedores"];
            Proveedores proveedor = new Proveedores();
            bool bEncontrado = false;
            if (txtIdProveedor.Text != "")
            {
                proveedor.Id_Proveedor = Convert.ToInt16(txtIdProveedor.Text.Trim());
                foreach (Proveedores oProveedor in listaProveedores)
                {
                    if (proveedor.Id_Proveedor == oProveedor.Id_Proveedor)
                    {
                        proveedor.Nombre = oProveedor.Nombre;
                        bEncontrado = true;
                        break;
                    }
                }
            }
            if (txtProveedor.Text != "")
            {
                proveedor.Nombre = txtProveedor.Text.Trim();
                foreach (Proveedores oProveedor in listaProveedores)
                {
                    if (proveedor.Nombre == oProveedor.Nombre)
                    {
                        proveedor.Nombre = oProveedor.Nombre;
                        bEncontrado = true;
                        break;
                    }
                }
            }
            if (bEncontrado)
            {
                List<Proveedores> listTemp = new List<Proveedores>();
                listTemp.Add(proveedor);
                gvClientes.DataSource = listTemp;
            }
            else
            {
                proveedor.Nombre = txtProveedor.Text;
                BMProveedores bmProveedores = new BMProveedores(Connection);
                listaProveedores = bmProveedores.BMProveedoresSearch(proveedor);
                gvClientes.DataSource = listaProveedores;
            }
            gvClientes.DataBind();
        }
        catch (Exception ex) { ErrorUI(ex); }
    }
    #endregion  

    #endregion
}
